package com.chen.listener;

import javax.servlet.ServletRequestAttributeEvent;
import javax.servlet.ServletRequestAttributeListener;
import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener;

/**
 * ServletRequestListener 监听器 监听Request域创建和销毁
 * ServletRequestAttributeListener 监听器 监听Request域的中的数据的 增删改
 * Request 域 每次发送请求都会由tomcat 自动创建  销毁（请求结束了）
 */
@WebListener
public class MyRequestListener implements ServletRequestListener, ServletRequestAttributeListener {
    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println(sre.getServletRequest().hashCode() + "Request域创建了");
    }

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println(sre.getServletRequest().hashCode() + "Request 域销毁了");
    }

    @Override
    public void attributeAdded(ServletRequestAttributeEvent srae) {
        System.out.println(srae.getServletRequest().hashCode() + "Request域 新增" + srae.getName() + " : " + srae.getValue());
    }

    @Override
    public void attributeRemoved(ServletRequestAttributeEvent srae) {
        System.out.println(srae.getServletRequest().hashCode() + "Request域 删除" + srae.getName() + " : " + srae.getValue());
    }

    @Override
    public void attributeReplaced(ServletRequestAttributeEvent srae) {
        System.out.println(srae.getServletRequest().hashCode() + "Request域 修改" + srae.getName() + " : " + srae.getValue() + "新的值为" + srae.getServletRequest().getAttribute(srae.getName()));
    }
}
